package interview;

public class interview_01_08 {
    public void setZeroes(int[][] matrix) {
        int m= matrix.length;
        if(m==0) return;
        int n=matrix[0].length;
        boolean[][] flag=new boolean[m][n];
        for(int i=0;i<m;++i){
            for(int j=0;j<n;++j){
                if(matrix[i][j]==0) flag[i][j]=true;
            }
        }
        boolean[] hang=new boolean[m];
        boolean[] lie=new boolean[n];
        for(int i=0;i<m;++i){
            for(int j=0;j<n;++j){
                if(flag[i][j]){
                   if(!hang[i]){
                       hang[i]=true;
                       for(int k=0;k<n;++k) matrix[i][k]=0;
                   }
                   if(!lie[j]){
                       lie[j]=true;
                       for(int k=0;k<m;++k) matrix[k][j]=0;
                   }
                }
            }
        }
        return;
    }
}
